package swingxrcp.framework.client.swingx.binding;

import javax.swing.JComponent;

import swingxrcp.framework.client.swingx.data.DataModel;

/**
 *
 * TODO 数据绑定，创建和更新UI页面中的组件与数据模型绑定。
 *
 * @author Fengyiyun
 *
 */
public interface IBinding {

	/**
	 * 更新DataModel
	 *
	 * 将 UI 控件上的当前值存入到数据模型中
	 */
	public void pushIn();

	/**
	 * 刷新UI值
	 *
	 * 从数据模型中取出值，显示到 UI 控件上
	 */
	public void pullOut();

	/**
	 * 创建UI组件与数据模型绑定
	 *
	 * @param component
	 *            UI组件
	 * @param dataModel
	 *            数据模型
	 * @param field
	 *            实例变量
	 */
	public void createBinding(JComponent component, DataModel dataModel, String field);

	/**
	 * 获取当前绑定容器的数据模型
	 *
	 * @return
	 */
	public DataModel getDataModel();
}
